////////////////////////////////////////////////////////////////////////////////
//
//  FLEX USER GROUP HOKURIKU
//  Copyright 2009 Flex User Group Hokuriku
//  All Rights Reserved.
// 
//  NOTICE: Flex User Group Hokuriku permits you to use, 
//  modify, and distribute this file 
//  in accordance with the terms of the license agreement accompanying it.
//
////////////////////////////////////////////////////////////////////////////////
package net.fxug.hokuriku.chocolat.events
{
    import flash.events.Event;

    /**
     * ATND検索結果用のイベントクラス
	 * @author hikaruworld
     * @inheritDoc flash.events.Event
     */
    public class A3TNDEvent extends Event
    {
        /**
         * 完了イベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>value</td><td>ATND検索結果の一覧を返す</td></tr>
         * </table>
         *
         * @see net.fxug.hokuriku.chocolat.model.A3TNDEventSearchResult
         * @see net.fxug.hokuriku.chocolat.model.A3TNDUserSearchResult
         * @eventType completeEvent
         */
        public static const COMPLETE_EVENT:String = "completeEvent";
        /**
         * 失敗イベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>info</td><td>障害内容</td></tr>
         * </table>
         * @eventType failedEvent
         */
        public static const FAILED_EVENT:String = "failedEvent";
        /**
         * HTTPステータスイベント
         * <p>このイベントには、次のプロパティがあります。</p>
         * <table class=innertable>
         * <tr><th>Property</th><th>Value</th></tr>
         * <tr><td>info</td><td>HTTP_STATUS情報</td></tr>
         * </table>
         * @eventType statusEvent
         */
        public static const STATUS_EVENT:String = "statusEvent";

        /**
         * @param type イベントタイプ
         * @param arys A3TNDEventSearchResultの配列
         * @param bubbles バブリングが可能かどうか
         * @param cancelable キャンセルが可能かどうか
         */
        public function A3TNDEvent(type:String, arys:Array = null, info:String = null, bubbles:Boolean = false, cancelable:Boolean = false)
        {
            super(type, bubbles, cancelable);

            this._value = arys;
            this._info = info;
        }
        /**
         * 検索結果一覧
         * completeEvent発生時にのみ値が設定される。
         */
        private var _value:Array;
        /**
         * 検索結果一覧
         * completeEvent時のみ値がNullに設定される。
         */
        private var _info:String;

		/**
		 * @inheritDoc flash.events.Event#clone()
		 */
        override public function clone():Event
        {
            return new A3TNDEvent(type, this._value, this._info, bubbles, cancelable);
        }

        //---------------------------------------------------------------------
        // IDEによる自動生成
        //---------------------------------------------------------------------
        public function get value():Array
        {
            return this._value;
        }

        public function get info():String
        {
            return this._info;
        }

    }
}